A lo largo de este documento vamos a llevar a cabo una sencilla revisión de algunos elementos estudiados durante estas semanas.
Para ello, vamos a dividir el trabajo en tres secciones.
Identificaremos en internet dos páginas donde se discuta sobre el uso de expresiones regulares, analizando cual de las dos es más completa
Realizaremos el mismo análisis que en la sección anterior, pero con páginas relacionadas con Markdown.
En esta última sección trabajaremos con uno de los datasets de RStudio: Swiss.
Las expresiones regulares, también conocidas como regex, son una herramienta para la manipulación de cadenas de texto (strings). Es importante conocer y controlar el uso de esta herramienta, por lo que a continuación vamos a analizar y comparar dos páginas que hablan sobre las principales expresiones regulares
Vamos a comenzar revisando este documento publicado en internet, que ha sido realizado también con Rmarkdown.
Tras una breve definición, abre una amplia sección de teoría, donde se estudian distintos aspectos de las expresiones regulares:
Sin embargo, antes de desarrollar estos puntos, el autor define el concepto cláusula de Kleene:
“Es una operación que se aplica sobre un conjunto de cadenas de caracteres o un conjunto de símbolos o caracteres, y representa el conjunto de las cadenas que se pueden formar tomando cualquier número de cadenas del conjunto inicial, posiblemente con repeticiones, y concatenándolas entre sí.”
Esta definición puede ser útil para aquellos usuarios que no tengan conocimientos previos avanzados en matemáticas y/o computación.
Después comienza a revisar cada uno de los aspectos enumerados anteriormente. Proporciona los casos más comunes dentro de cada categoría, describiendo su uso.
Como esta página hace referencia específicamente a las expresiones regulares en RStudio, tiene una sección llamada implementación en R. Aquí comenta los comandos más utilizados para trabajar con cadenas de texto:
| Detección del patrón | División de un string usando un patrón | Localización del patrón | Extrae patrón |
|---|---|---|---|
grep |
strsplit |
str_locate |
regmatches |
grepl |
str_locate_all |
regexpr |
|
str_detect |
gregexpr |
||
str_extract |
|||
str_extract_all |
Muchos de estos comandos están recogidos en la librería stringr.
Por último, recoge una sección llamada reemplazar patrón. Quizás hubiera sido más lógico incluir esta sección dentro de la anterior.
Debemos señalar que esta página hace referencia a los comandos utilizados en R, no en Rstudio.
Esta segunda página también está dedicada al estudio de las expresiones regulares. Sin embargo, el enfoque y el alcance es bastante distinto. Está dividida en tres partes:
La primera sección, tal y como su nombre indica, trata de recoger las principales expresiones regulares. Aunque la selección no es muy amplia, cada expresión viene acompañada de una pequeña explicación sobre su uso, lo que facilita su comprensión
Pero quizás, lo más interesante de este recurso es la sección de expresiones regulares habituales. Proporcionan una breve lista con las expresiones utilizadas de forma recurrente. Aunque algunas son mejorables, pueden llegar a ser de gran utilidad.
Esta página no habla sobre comandos relacionados con expresiones regulares.
¿Conclusión final?
Ambos recursos tratan el tema de una forma resumida y sutil. Recogen las principales expresiones, la primera página incluye los comandos utilizados en R, la segunda las expresiones regulares más habituales. Sin embargo, en ninguna de las dos se proporciona un ejemplo para cada operador.
En resumen, aunque recogen información bastante útil y de forma resumida, no ofrecen mucho más que las conocidas Cheat sheets. A continuación podemos ver una para RStudio:
Cheat Sheet Regex
Markdown es un lenguaje que facilita la aplicación de formato a un texto. Es muy conocido por tener diversas ventajas como1:
Al igual que en la sección anterior, vamos a analizar dos páginas donde hacen una rápida revisión por los recursos más comunes en Markdown.
La primera página recoge la información básica para conocer el uso de Markdown.
Trata la introducción de cabeceras, viñetas, código, ecuaciones… e incluso elementos menos comunes como el uso de color en el texto. Lo hace de una forma resumida pero suficiente para su compresión. Proporciona información no tan básica, pero útil, sobre algunas de estas formas de sintáxis. Por ejemplo, muestra como alinear los elementos de una tabla, realizar un diagrama o incluir un video dentro de nuestro Markdown.
Al final tiene una sección de integración en R, donde se habla sobre el uso de este tipo de documentos dentro del entorno R.
Algo muy positivo de este recurso es que incluye un pequeño apartado donde recoge las limitaciones de Markdown, así como posibles soluciones.
Esta web también analiza la sintáxis dentro de un Markdown.
Al igual que en recurso anterior, estudia elementos fundamentales como tablas, listas o cabeceras. Sin embargo, faltan algunos muy utilizados como el tachado o la formación de ecuaciones como la de la fuerza de la gravedad:
\[F=G\frac{(m_1*m_2)}{d^2}\]
¿Conclusión final?
El primer recurso es bastante más completo que el segundo. Sin embargo, el diseño del segundo es más limpio, lo cual facilita en parte su comprensión.
Para concluir este apartado, podemos decir que hay muchísimos recursos para aprender a utilizar Markdown. De hecho, esta sobreinformación probablemente sea el principal obstáculo para el aprendizaje.
Al igual que en la sección anterior, podemos contar con Cheat sheets que nos facilitan la tarea, al resumir en poco espacio la información más esencial:
Cheat Sheet Markdown
En esta sección vamos a realizar un estudio descriptivo de Swiss. Este dataset mide ciertos indicadores socioeconómicos para cada una de las 47 provincias francófonas de Suiza en 1888 2.
Los indicadores estudian:
Antes de empezar a analizar más en profundidad este dataframe, es interesante conocer su estructura y componentes.
Para empezar, vemos que Swiss está compuesta por 47 observaciones, dentro de seis variables:
## [1] 47 6
Para hacernos una idea de como es el dataset, aquí podemos ver como son las tres primeras filas:
| Fertility | Agriculture | Examination | Education | Catholic | Infant.Mortality | |
|---|---|---|---|---|---|---|
| Courtelary | 80.2 | 17.0 | 15 | 12 | 9.96 | 22.2 |
| Delemont | 83.1 | 45.1 | 6 | 9 | 84.84 | 22.2 |
| Franches-Mnt | 92.5 | 39.7 | 5 | 5 | 93.40 | 20.2 |
Y por último, antes de entrar a analizar con más profundidad Swiss, vamos a utilizar la función summary para ver un resumen estadístico de las columnas:
| Fertility | Agriculture | Examination | Education | Catholic | Infant.Mortality | |
|---|---|---|---|---|---|---|
| Min. :35.00 | Min. : 1.20 | Min. : 3.00 | Min. : 1.00 | Min. : 2.150 | Min. :10.80 | |
| 1st Qu.:64.70 | 1st Qu.:35.90 | 1st Qu.:12.00 | 1st Qu.: 6.00 | 1st Qu.: 5.195 | 1st Qu.:18.15 | |
| Median :70.40 | Median :54.10 | Median :16.00 | Median : 8.00 | Median : 15.140 | Median :20.00 | |
| Mean :70.14 | Mean :50.66 | Mean :16.49 | Mean :10.98 | Mean : 41.144 | Mean :19.94 | |
| 3rd Qu.:78.45 | 3rd Qu.:67.65 | 3rd Qu.:22.00 | 3rd Qu.:12.00 | 3rd Qu.: 93.125 | 3rd Qu.:21.70 | |
| Max. :92.50 | Max. :89.70 | Max. :37.00 | Max. :53.00 | Max. :100.000 | Max. :26.60 |
En este apartado vamos a realizar un análisis descriptivo de Swiss Para ello, vamos a estudiar la relación entre las distintas variables del dataset, observando si existe algún tipo de relación entre ellas.
Aquí podemos ver que no existe ningúna correlación pronunciada entre las variables del dataset. Sin embargo, se observa una ligera relación entre las siguientes variables
Fertility - ExaminationFertility - EducationAgriculture - ExaminationAgriculture - EducationExamination - EducationAunque son cinco relaciones distintas, estamos hablando solamente de cuatro variables. Dos de ellas (Examination y Educacion) están presentes en las cinco relaciones. Con esta información, vamos a proceder a analizar estas correlaciones .
Este gráfico dinámico nos muestra la relación entre Education y Examination. La linea ascendente indica una relación positiva entre ambas variables, lo cual tiene lógica, ya que a mayor nivel de educación, es más probable que obtenga una calificación alta en el examen del ejército. Por otro lado, en lo que se refiere a la relación de la Fertilidad con estas dos variables, vemos que existe una relación negativa con ambas. La Fertilidad será mayor cuanto menores sean los otros dos indicadores.
Aquí podemos ver que con Agriculture ocurre exactamente lo mismo que con Fertility: existe una correlación negativa entre la variable y Education y Examination. Sin embargo, podemos observar que existe una relación un poco más fuerte con esta última.
Como conclusión, vemos que existe una relación entre cuatro de las variables incluidas en nuestro dataset. Aunque dicha relación no es muy fuerte, destacan sobre el resto Education y Examination con una correlación positiva.
| X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | X10 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 186 | Switzerland | 2015 | 32.3 | 3.2 | 7.8 | 12.5 | 16.8 | 22.6 | 40.2 | 25.2 |
Una vez revisados los datos de Suiza en 1888 sería interesante conocer la situación actual.
Hemos analizado varios indicadores socioeconómicos del país. Estos indicadores de bienestar se traducen al grado de felicidad de la población: a mejores condiciones socioeconómicas, cabe pensar que mayor será el nivel de satisfacción o felicidad.
Por ello, hemos obtenido los datos del informe mundial sobre la felicidad en 2019, realizado por Naciones Unidas.
| Países | Ranking.Felicidad | Index.Felicidad | |
|---|---|---|---|
| 50 | Finlandia | 1 | 7.769 |
| 43 | Dinamarca | 2 | 7.600 |
| 108 | Noruega | 3 | 7.554 |
| 69 | Islandia | 4 | 7.494 |
| 107 | Holanda | 5 | 7.488 |
| 35 | Suiza | 6 | 7.480 |
Podemos ver que Suiza es el sexto país más feliz del mundo en 2019. Sin duda, es un índicador excelente sobre el bienestar del país. Todo esto indica que, desde 1888 que fueron obtenidos los datos de Swiss, el país ha tenido una evolución social muy positiva.
Hablamos de más de 130 años de diferencia entre ambos estudios, por lo que es complicado sacar una conclusión definitiva. Han ocurrido cientos de acontecimientos que han influido en la evolución del país, pero, sea como fuere, actualmente el Suiza tiene un nivel de bienestar envidiable.
A lo largo de este documento hemos revisado dos recursos de expresiones regulares y Markdown, discutiendo brevemente los fallos y posibles mejoras de ambos. Por otro lado, en la anterior sección se ha realizado un análisis descriptivo sobre el dataset Swiss, analizando sus variables a través de las herramientas que proporciona RStudio.
En su realización hemos intentado utilizar los principales elementos de RMarkdown y algunos de los paquetes de RStudio, y así demostrar su uso y conocimiento.